//package yf.mall.dysdk.utils;
//
//import org.apache.commons.lang3.time.DateUtils;
//import yf.mall.dysdk.model.AuthCode;
//
//import java.util.Date;
//import java.util.HashMap;
//import java.util.Map;
//
///**
// * @author yxmds
// */
//public final class AuthCodeCacheUtil {
//
//    private AuthCodeCacheUtil() {
//    }
//
//    private static final Map<String, AuthCode> authCodeMap = new HashMap<>();
//
//    public static void addCode(Long userId, String code) {
//        clearExpire();
//        long expires = DateUtils.addSeconds(new Date(), 300).getTime();
//        authCodeMap.put(code, new AuthCode(userId,code, expires));
//    }
//
//    public static Long getUser(String code) {
//        if (authCodeMap.containsKey(code)) {
//            AuthCode authCode = authCodeMap.get(code);
//            if (!isExpires(authCode.getExpiresAt())) {
//                return authCode.getUserId();
//            }
//        }
//        return null;
//    }
//
//    public static void remove(String code) {
//        authCodeMap.remove(code);
//    }
//
//    private static void clearExpire() {
//        if(authCodeMap.isEmpty()){
//            return;
//        }
//        authCodeMap.entrySet().forEach(entry -> {
//            AuthCode code = entry.getValue();
//            if (isExpires(code.getExpiresAt())) {
//                authCodeMap.remove(entry.getKey());
//            }
//        });
//    }
//
//    private static boolean isExpires(long times) {
//        return times < System.currentTimeMillis();
//    }
//}
